package com.bestcem.xm.member.dao;

import com.bestcem.xm.member.entity.pojo.MemberUserGroupDO;

import java.util.Collection;
import java.util.List;

/**
 * 联系人组织层级、为联系人查询提供支持
 *
 * @author dc.wang <dc.wang@idiaoyan.com>
 * @version V1.0
 * @date 2022/2/9 11:27
 */
public interface MemberUserGroupDao {
    /**
     * 查询
     *
     * @param ids 联系人组织门店id集合
     * @return 联系人组织门店集合
     */
    List<MemberUserGroupDO> findByIds(Collection<String> ids);

    /**
     * 查询组织层级下的、公共的组织数量
     *
     * @param groupIds 组织id集合
     * @return 数量
     */
    Integer countSubAndInactiveGroup(String orgId, Collection<String> groupIds);

    /**
     * 查询组织层级下的、公共的组织、非激活状态的门店
     *
     * @param groupIds 组织id集合
     * @return 联系人组织门店集合
     */
    List<MemberUserGroupDO> allSubAndInactiveGroup(String orgId, Collection<String> groupIds);

    /**
     * 批量替换,如果不存在则新增
     *
     * @param memberUserGroups 联系人组织门店集合
     */
    void batchInsertReplace(Collection<MemberUserGroupDO> memberUserGroups);

    /**
     * 获取子节点
     *
     * @param store
     * @return
     */
    List<String> listByParentIn(String store);
}
